// TypeScript 类修饰符练习题：图书馆管理系统
// 题目描述
// 某图书馆需要开发一个简单的图书管理系统，要求设计以下类结构：
// 需求说明
// Book类（图书类）
// 设计3个属性：
// title（书名）- 允许类外部访问
// author（作者）- 只允许在类内部访问
// category（分类）- 允许类内部及子类访问
// 提供构造函数初始化这些属性
// 提供一个公共方法 getInfo() 显示图书基本信息
// LibraryBook类（馆藏图书类，继承自Book类）
// 新增属性：
// isbn（国际标准书号）- 公共属性
// location（存放位置）- 私有属性
// 重写 getInfo() 方法，在其中需要访问父类的 category 属性
// 提供 borrow() 方法实现借阅功能
class Book{
    public title:string;
    private author:string;
    protected category:string;
    constructor(title:string,author:string,category:string){
        this.title = title;
        this.author = author;
        this.category = category;
    }
    public getInfo(){
        console.log(`书名：${this.title} 作者：${this.author} 分类：${this.category}`);
    }
}

class LibraryBook extends Book{
    public isbn:string;
    private location:string;
    constructor(title:string,author:string,category:string,isbn:string,location:string){
        super(title,author,category);
        this.isbn = isbn;
        this.location = location;
    }
    public getInfo(){
        console.log(`书名：${this.title} 分类：${this.category} 存放位置：${this.location}`);
    }
    public borrow(){
        console.log(`借阅成功，请于30分钟内归还`);
    }
}

let book = new LibraryBook('《三体》','刘慈欣','科幻小说','9787508144600','A1');
book.getInfo()
book.borrow()